<?php

/**
* promotion actions.
*
* @package    sf_imacom
* @subpackage promotion
* @author     Your name here
* @version    SVN: $Id: actions.class.php 2288 2006-10-02 15:22:13Z fabien $
*/
class promotionActions extends autopromotionActions
{

    public function updatePromotionFromRequest()
        {
        
        
        //on récupère les données du tableau
            $promotion = $this->getRequestParameter('promotion');
                
                //si le champs promotion est rempli on récupère le champs
                //et on le stocke dans l'objet promotion.
            if (isset($promotion['promotion']))
                {
                    $this->promotion->setPromotion($promotion['promotion']);
                }
        
            $fileName = "{$this->promotion->getPromotion()}";
        
            if (!$this->getRequest()->hasErrors())
                {
                    $this->generateThumbnail($fileName, 'promotion[file_path1]', 1, 80);
                    $this->generateThumbnail($fileName, 'promotion[file_path1]', 1, 800);
                    $this->generateThumbnail($fileName, 'promotion[file_path1]', 1, 1024);
                    
                    $this->generateThumbnail($fileName, 'promotion[file_path2]', 2, 80);
                    $this->generateThumbnail($fileName, 'promotion[file_path2]', 2, 800);
                    $this->generateThumbnail($fileName, 'promotion[file_path2]', 2, 80);
                    
                    $this->generateThumbnail($fileName, 'promotion[file_path3]', 3, 80);
                    $this->generateThumbnail($fileName, 'promotion[file_path3]', 3, 800);
                    $this->generateThumbnail($fileName, 'promotion[file_path3]', 3, 1024);
                }
                
            parent::updatePromotionFromRequest();
        }
        
        /*=================================================================================================*/
        /* fonction gérant plusieurs champ */
        /*=================================================================================================*/

    protected function generateThumbnail($fileName, $file,$num='',$taille)
        {
            if($this->getRequest()->getFileSize($file))
                {
                    //on récupère l'extension du fichier uploadé
                    $ext = $this->getRequest()->getFileExtension($file);
                        
                    //on créé un objet image miniature
                    $thumbnail = new sfThumbnail($taille,$taille);
                    //on charge le fichier temporaire uploadé dans l'objet miniature
                    $thumbnail->loadFile($this->getRequest()->getFilePath($file));
                    //on enregistre la miniature sur le serveur sous le nom _imac2006.png
                
                    if(preg_match("/\.jpg/i",$ext)){$typeMime = 'image/jpeg';}
                    elseif(preg_match("/\.png/i",$ext)){$typeMime = 'image/png';} // ne gère pas la transparence
                
                    $thumbnail->save(sfConfig::get('sf_upload_dir').'/promotion/'.$taille.'_'.$fileName.'_'.$num.$ext, $typeMime);
                }
        }
}
